Type Parameters Naming Conventions

Java Technologies - জাভা জেনেরিক্স (Java Generics) Java Generics এর জন্য Best Practices |
99
99

জাভা জেনেরিক্স ব্যবহার করার সময় টাইপ প্যারামিটারগুলোর নামকরণ একটি গুরুত্বপূর্ণ দিক। সঠিক নামকরণ কনভেনশন অনুসরণ করলে কোড আরও বোধগম্য, রিডেবল এবং মেইনটেইনেবল হয়।


কনভেনশনসমূহ

জাভায় টাইপ প্যারামিটারের জন্য কিছু সাধারণভাবে গৃহীত নামকরণ প্যাটার্ন রয়েছে। এগুলো ছোট এবং সাধারণত এক অক্ষরের হয়। তবে এগুলো টাইপ প্যারামিটারের উদ্দেশ্য অনুযায়ী ইঙ্গিতপূর্ণ হয়। নিচে জাভা ডেভেলপারদের মধ্যে প্রচলিত টাইপ প্যারামিটার নামকরণ কনভেনশন উল্লেখ করা হলো:

SymbolMeaning/Use Case
TType (Generic data type)
EElement (Used in Collections like List)
KKey (Used in key-value mappings)
VValue (Used in key-value mappings)
NNumber (Numeric types like Integer, Double)
RResult (Return type or output type)

উদাহরণসমূহ

১. সাধারণ টাইপ প্যারামিটার

public class Box<T> {
    private T item;

    public void setItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }

    public static void main(String[] args) {
        Box<String> stringBox = new Box<>();
        stringBox.setItem("Hello");
        System.out.println(stringBox.getItem());
    }
}
  • T এখানে একটি সাধারণ টাইপ প্যারামিটার যা যেকোনো ডেটা টাইপকে নির্দেশ করে।

২. Collections এর জন্য E (Element)

public class CustomList<E> {
    private List<E> elements = new ArrayList<>();

    public void add(E element) {
        elements.add(element);
    }

    public E get(int index) {
        return elements.get(index);
    }

    public static void main(String[] args) {
        CustomList<String> list = new CustomList<>();
        list.add("Java");
        list.add("Generics");
        System.out.println(list.get(0));
    }
}
  • E এখানে কালেকশনের উপাদান (Element) নির্দেশ করতে ব্যবহৃত হয়েছে।

৩. Map এর জন্য K (Key) এবং V (Value)

public class CustomMap<K, V> {
    private Map<K, V> map = new HashMap<>();

    public void put(K key, V value) {
        map.put(key, value);
    }

    public V get(K key) {
        return map.get(key);
    }

    public static void main(String[] args) {
        CustomMap<Integer, String> map = new CustomMap<>();
        map.put(1, "One");
        map.put(2, "Two");
        System.out.println(map.get(1));
    }
}
  • K: মেপের কী (Key) নির্দেশ করে।
  • V: মেপের ভ্যালু (Value) নির্দেশ করে।

৪. N (Number) এর ব্যবহার

public class NumericBox<N extends Number> {
    private N number;

    public NumericBox(N number) {
        this.number = number;
    }

    public double doubleValue() {
        return number.doubleValue();
    }

    public static void main(String[] args) {
        NumericBox<Integer> intBox = new NumericBox<>(10);
        System.out.println(intBox.doubleValue()); // 10.0
    }
}
  • N এখানে সংখ্যা টাইপের ডেটা (যেমন Integer, Double) নির্দেশ করতে ব্যবহৃত হয়েছে।

৫. মেথডে R (Result) এর ব্যবহার

public class ResultCalculator<T, R> {
    public R calculate(T input, Function<T, R> function) {
        return function.apply(input);
    }

    public static void main(String[] args) {
        ResultCalculator<Integer, String> calculator = new ResultCalculator<>();
        String result = calculator.calculate(10, i -> "Result: " + (i * 2));
        System.out.println(result); // Result: 20
    }
}
  • R এখানে মেথডের আউটপুট টাইপ নির্দেশ করে।

একাধিক টাইপ প্যারামিটার

যদি একটি ক্লাস বা মেথডে একাধিক টাইপ প্যারামিটার প্রয়োজন হয়, তবে তাদের উদ্দেশ্য অনুযায়ী নামকরণ করা উচিত।

উদাহরণ:

public class Pair<K, V> {
    private K key;
    private V value;

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }

    public K getKey() {
        return key;
    }

    public V getValue() {
        return value;
    }

    public static void main(String[] args) {
        Pair<String, Integer> pair = new Pair<>("Age", 25);
        System.out.println("Key: " + pair.getKey() + ", Value: " + pair.getValue());
    }
}

কেন কনভেনশন অনুসরণ করা উচিত?

  1. বোধগম্যতা: টাইপ প্যারামিটার কী নির্দেশ করে তা সহজেই বোঝা যায়।
  2. রিডেবল কোড: কোড পড়ার সময় ক্লাস বা মেথডের কার্যকারিতা স্পষ্ট হয়।
  3. স্ট্যান্ডার্ডাইজেশন: দলগত কাজের সময় কোড কনভেনশন মেনে চলা সহজ হয়।

জেনেরিক টাইপ প্যারামিটার নামকরণের ক্ষেত্রে জাভার প্রচলিত কনভেনশন অনুসরণ করলে কোড আরও সহজবোধ্য ও কার্যকর হয়। ছোট এবং অর্থবোধক টাইপ প্যারামিটার ব্যবহার করলে তা কোডের কার্যকারিতা বোঝার পাশাপাশি টাইপ সেফটি নিশ্চিত করতে সাহায্য করে।

Content added By
Promotion